home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / share / cvs / contrib / sandbox_status < prev    next >
Text File  |  2005-10-16  |  2KB  |  84 lines

  1. #! /bin/sh
  2. #
  3. # sandbox_status - identify files added, changed, or removed 
  4. #                  in CVS working directory
  5. #
  6. # Contributed by Lowell Skoog <fluke!lowell@uunet.uu.net>
  7. # This program should be run in a working directory that has been
  8. # checked out using CVS.  It identifies files that have been added,
  9. # changed, or removed in the working directory, but not "cvs
  10. # committed".  It also determines whether the files have been "cvs
  11. # added" or "cvs removed".  For directories, it is only practical to
  12. # determine whether they have been added.
  13.  
  14. name=sandbox_status
  15. changes=0
  16.  
  17. # If we can't run CVS commands in this directory
  18. cvs status . > /dev/null 2>&1
  19. if [ $? != 0 ] ; then
  20.  
  21.     # Bail out
  22.     echo "$name: there is no version here; bailing out" 1>&2
  23.     exit 1
  24. fi
  25.  
  26. # Identify files added to working directory
  27. for file in .* * ; do
  28.  
  29.     # Skip '.' and '..'
  30.     if [ $file = '.' -o $file = '..' ] ; then
  31.     continue
  32.     fi
  33.  
  34.     # If a regular file
  35.     if [ -f $file ] ; then
  36.     if cvs status $file | grep -s '^From:[     ]*New file' ; then
  37.         echo "file added:      $file - not CVS committed"
  38.         changes=`expr $changes + 1`
  39.     elif cvs status $file | grep -s '^From:[     ]*no entry for' ; then
  40.         echo "file added:      $file - not CVS added, not CVS committed"
  41.         changes=`expr $changes + 1`
  42.     fi
  43.  
  44.     # Else if a directory
  45.     elif [ -d $file -a $file != CVS.adm ] ; then
  46.  
  47.     # Move into it
  48.     cd $file
  49.  
  50.     # If CVS commands don't work inside
  51.     cvs status . > /dev/null 2>&1
  52.     if [ $? != 0 ] ; then
  53.         echo "directory added: $file - not CVS added"
  54.         changes=`expr $changes + 1`
  55.     fi
  56.  
  57.     # Move back up
  58.     cd ..
  59.     fi
  60. done
  61.  
  62. # Identify changed files
  63. changedfiles=`cvs diff | egrep '^diff' | awk '{print $3}'`
  64. for file in $changedfiles ; do
  65.     echo "file changed:    $file - not CVS committed"
  66.     changes=`expr $changes + 1`
  67. done
  68.  
  69. # Identify files removed from working directory
  70. removedfiles=`cvs status | egrep '^File:[     ]*no file' | awk '{print $4}'`
  71.  
  72. # Determine whether each file has been cvs removed
  73. for file in $removedfiles ; do
  74.     if cvs status $file | grep -s '^From:[     ]*-' ; then
  75.     echo "file removed:    $file - not CVS committed"
  76.     else
  77.     echo "file removed:    $file - not CVS removed, not CVS committed"
  78.     fi
  79.     changes=`expr $changes + 1`
  80. done
  81.  
  82. exit $changes
  83.